home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / ifxlite / imagefx3 / rexx / drawanim.ifx < prev    next >
Text File  |  2004-08-03  |  2KB  |  138 lines

  1. /*
  2.  * $VER: DrawAnim 2.0.0 (22.7.94)
  3.  *
  4.  * Arexx program for the ImageFX image processing system.
  5.  * Written by Thomas Krehbiel
  6.  *
  7.  * Revised for ImageFX release 2.0.
  8.  *
  9.  * Create an animation that consists of a series of drawing commands
  10.  * performed over a toolbox display.
  11.  *
  12.  */
  13.  
  14. OPTIONS RESULTS
  15. SIGNAL ON BREAK_C
  16.  
  17. tool.1 = Line
  18. tool.2 = Box
  19. tool.3 = FilledBox
  20. tool.4 = Oval
  21. tool.5 = FilledOval
  22.  
  23. index = 0
  24. width = 640
  25. height = 400
  26.  
  27. CALL RANDOM(0,999,TIME('Seconds'))  /* randomize */
  28.  
  29. outpath = GETCLIP('DrawAnim_OutPath')
  30. outfile = GETCLIP('DrawAnim_OutFile')
  31.  
  32. IF outpath = "" THEN DO
  33.    GetPrefs RendPath
  34.    outpath = result
  35.    outfile = 'draw.anim'
  36.    END
  37.  
  38. RequestFile '"Select Output Animation File:"' outpath outfile
  39. IF rc ~= 0 THEN EXIT
  40.  
  41. outname = result
  42. outfile = filereq.file
  43. outpath = filereq.path
  44.  
  45. SETCLIP('DrawAnim_OutPath', outpath)
  46. SETCLIP('DrawAnim_OutFile', outfile)
  47.  
  48.  
  49. IF EXISTS(outname) THEN
  50.    ADDRESS COMMAND 'Delete >NIL:' outname
  51.  
  52.  
  53. Render Amiga
  54. Render Mode Hires Lace Lace
  55. Render Colors 16
  56. Render Dither 4 0 0
  57.  
  58.  
  59. CreateBuffer width height Force
  60. LockRange 0 ON
  61.  
  62. DO i = 1 TO 60
  63.  
  64.    Render Close
  65.  
  66.    Message 'Frame' i
  67.  
  68.    Redraw Off
  69.    Swap
  70.    DrawTool tool.index
  71.    GrabBuffer 'IMAGEFX.1' Force
  72.    Swap
  73.  
  74.    CALL Primitive
  75.  
  76.    Swap
  77.    Scissors
  78.    Box 0 0 640 80
  79.    BrushHandle 0 0
  80.    Swap
  81.    Point 0 height-80
  82.    KillBrush
  83.  
  84.    Redraw On
  85.  
  86.    Render Go
  87.    SaveRenderedAs ANIM outname Keep Append
  88.  
  89.    END
  90.  
  91. BREAK_C:
  92.  
  93. SaveRenderedAs ANIM outname Close
  94. Render Close
  95.  
  96. EXIT
  97.  
  98.  
  99. Primitive:
  100.    PROCEDURE EXPOSE index width height
  101.  
  102.    LockGUI
  103.    ActiveColor RANDOM(4,15)
  104.  
  105.    x0 = RANDOM(0,width-1)
  106.    y0 = RANDOM(0,height-81)
  107.    x1 = RANDOM(0,width-1)
  108.    y1 = RANDOM(0,height-81)
  109.    w  = RANDOM(0,width%3)
  110.    h  = RANDOM(0,height%3)
  111.  
  112.    SELECT
  113.       WHEN index = 1 THEN DO
  114.          Line x0 y0 x1 y1
  115.          END
  116.       WHEN index = 2 THEN DO
  117.          Box x0 y0 w h
  118.          END
  119.       WHEN index = 3 THEN DO
  120.          FilledBox x0 y0 w h
  121.          END
  122.       WHEN index = 4 THEN DO
  123.          Oval x0 y0 w h
  124.          END
  125.       WHEN index = 5 THEN DO
  126.          FilledOval x0 y0 w h
  127.          END
  128.       OTHERWISE NOP
  129.       END
  130.  
  131.    UnlockGUI Quiet
  132.  
  133.    index = index + 1
  134.    IF index > 5 THEN index = 1
  135.  
  136.    RETURN 0
  137.  
  138.